
class Node { // 节点结构
  constructor(el, next) {
    this.el = el
    this.next = next
  }
}

class LinkList {
  constructor() {
    this.head = null
    this.size = 0
  }

  _node(index) { // 链表是没有索引的，需要从头循环查找
    let current = this.head
    for (let i = 0; i < index; i++) {
      current = current.next
    }
    return current

  }

  add(index, el) {
    // 首先先判断参数的个数
    // if (arguments.length === 1) {
    //   el = index
    //   index = this.size
    // }

    if (index === 0) {
      let head = this.head
      this.head = new Node(el, head)
    } else {
      // 先找到前一个node，让前一个node的next指向插入的节点
      let pre = this._node(index - 1)
      pre.next = new Node(el, pre.next)

    }


  }
}
// 从0开始
const link = new LinkList()
link.add(0, '333') // 从2的位置加333
link.add(1, '9')
// link.add('2222') // 从当前第一个位置加2222

console.log(link.head)